Compiling Collection-Oriented Languages onto Massively Parallel Computers

نویسندگان

  • Guy E. Blelloch
  • Gary Sabot
چکیده

This paper introduces techniques for compiling the nested parallelism of collectionoriented languages onto existing parallel hardware. Programmers of parallel machines encounter nested parallelism whenever they write a routine that performs parallel operations, and then want to call that routine itself in parallel. This occurs naturally in many applications. Most parallel systems, however, do not permit the expression of nested parallelism. This forces the programmer to exploit only one level of parallelism or to implement nested parallelism themselves. Both of these alternatives tend to produce code that is harder to maintain and less modular than code described at a higher-level with nested parallel constructs. Not permitting the expression of nested parallelism is analogous to not permitting nested loops in serial languages. This paper describes issues and techniques for taking high-level descriptions of parallelism in the form of operations on nested collections and automatically translating them into at, single-level parallelism. A compiler is presented that translates a subset of a collection-oriented language, Paralation Lisp, into the instruction set of a at virtual machine. The instructions of the virtual machine are simple instructions on vectors of atomic values, and can be implemented on broad class of target architectures, including vector machines, single instruction parallel machines, and multiple instruction parallel machines. We have implemented the instructions on the Connection Machine computer (CM-2), a massively-parallel, single-instruction computer. As an illustration of the compiler techniques, the paper presents a quicksort example. The example has been tested on the CM-2. The speed of the compiled sort is only a factor of three slower than that of the fastest CM-2 sort.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Collection-oriented languages

Several programming languages arising from widely varying practical and theoretical considerations share a common high-level feature: their basic data type is an aggregate of other data types and their functional primitives operate on these aggregates. Examples of such languages and the collections they support are FORTRAN 90 and arrays, APL and arrays, Connection Machine LISP and xectors, PARA...

متن کامل

Compiling Rewriting onto SIMD and MIMD/SIMD Maschines

We present compilation techniques for Simple Maude, a declarative programming language based on Rewriting Logic which supports term, graph, and object-oriented rewriting. We show how to compile various constructs of Simple Maude onto SIMD and MIMD/SIMD massively parallel architectures, and in particular onto the Rewrite Rule Machine, a special purpose MIMD/SIMD architecture for rewriting. We sh...

متن کامل

An Object-oriented Implementation Model for the Promoter Language Technical Report

The PROMOTER programming language is designated for data parallel applications that are to run on massively parallel computers with distributed memory. This paper presents an object-oriented implementation model for the PROMOTER language. An object-oriented approach to compile data-parallel programs to message passing programs can reduce design complexity, facilitate reuse of components, and ea...

متن کامل

Compiling for massively parallel architectures: a perspective

The problem of automatically generating programs for massively parallel computers is a very complicated one, mainly because there are many architectures, each of them seeming to pose its own particular compilation problem. The purpose of this paper is to propose a framework in which to discuss the compilation process, and to show that the features which aaect it are few and generate a small num...

متن کامل

Project Triton: towards Improved Programmability of Parallel Computers Compilation Techniques. Triton/1 Parallel Architecture

This paper appeard in: The main objective of Project Triton is adequate programmability of massively parallel computers. This goal can be achieved by tightly coupling the design of programming languages and parallel hardware. The approach taken in the Project Triton is to let high-level, machine independent parallel programming languages drive the design of parallel hardware. This approach perm...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • J. Parallel Distrib. Comput.

دوره 8  شماره 

صفحات  -

تاریخ انتشار 1990